package com.itheima.stock.mapper;

import com.itheima.stock.common.domain.Stock4EvrDayDomain;
import com.itheima.stock.common.domain.Stock4MinuteDomain;
import com.itheima.stock.common.domain.StockUpdownDomain;
import com.itheima.stock.pojo.StockRtInfo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
* @author a
* @description 针对表【stock_rt_info(个股详情信息表)】的数据库操作Mapper
* @createDate 2022-05-08 16:06:48
* @Entity com.itheima.stock.pojo.StockRtInfo
*/
@Mapper
public interface StockRtInfoMapper {

    int deleteByPrimaryKey(Long id);

    int insert(StockRtInfo record);

    int insertSelective(StockRtInfo record);

    StockRtInfo selectByPrimaryKey(Long id);

    int updateByPrimaryKeySelective(StockRtInfo record);

    int updateByPrimaryKey(StockRtInfo record);

    List<StockUpdownDomain> getStockUpDownInfos(@Param("curTime") Date curTime);

    //查询全部股票信息，并按照涨幅降序排序（已经自动分页）
    //此处没有使用伪数据，查询的表中排序后的最新时间，所以没带入参数
    List<StockUpdownDomain> getStockByPage();

    /**
     *
     * @param start 开始时间
     * @param end 截至时间
     * @param flag 1：涨停，2：跌停
     * @return
     */
    List<Map> getStockUpDownCount(@Param("startTime") Date start, @Param("endTime") Date end, @Param("flag") int flag);

    //根据指定时间点统计涨幅区间数量
    List<Map> getStockUpdownScopeNum(@Param("curDate") Date curDate);

    List<Stock4MinuteDomain> getStockMinuteInfo(@Param("code") String code,@Param("startTime") Date start,@Param("endTime") Date end);

    List<Stock4EvrDayDomain> getStock4EvrDay(@Param("code") String code,@Param("startTime") Date start,@Param("endTime")Date end);

    int insertBatch(@Param("stockList") List<StockRtInfo> stockList);
}
